rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
↳ QTRS
↳ Overlay + Local Confluence
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
REV2(X, cons(Y, L)) → REV(cons(X, rev(rev2(Y, L))))
REV2(X, cons(Y, L)) → REV2(Y, L)
REV(cons(X, L)) → REV2(X, L)
REV(cons(X, L)) → REV1(X, L)
REV2(X, cons(Y, L)) → REV(rev2(Y, L))
REV1(X, cons(Y, L)) → REV1(Y, L)
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
REV2(X, cons(Y, L)) → REV(cons(X, rev(rev2(Y, L))))
REV2(X, cons(Y, L)) → REV2(Y, L)
REV(cons(X, L)) → REV2(X, L)
REV(cons(X, L)) → REV1(X, L)
REV2(X, cons(Y, L)) → REV(rev2(Y, L))
REV1(X, cons(Y, L)) → REV1(Y, L)
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
REV2(X, cons(Y, L)) → REV(cons(X, rev(rev2(Y, L))))
REV2(X, cons(Y, L)) → REV2(Y, L)
REV(cons(X, L)) → REV2(X, L)
REV(cons(X, L)) → REV1(X, L)
REV1(X, cons(Y, L)) → REV1(Y, L)
REV2(X, cons(Y, L)) → REV(rev2(Y, L))
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
REV1(X, cons(Y, L)) → REV1(Y, L)
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
REV1(X, cons(Y, L)) → REV1(Y, L)
trivial
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
REV2(X, cons(Y, L)) → REV(cons(X, rev(rev2(Y, L))))
REV2(X, cons(Y, L)) → REV2(Y, L)
REV(cons(X, L)) → REV2(X, L)
REV2(X, cons(Y, L)) → REV(rev2(Y, L))
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
REV2(X, cons(Y, L)) → REV2(Y, L)
REV(cons(X, L)) → REV2(X, L)
REV2(X, cons(Y, L)) → REV(rev2(Y, L))
Used ordering: Combined order from the following AFS and order.
REV2(X, cons(Y, L)) → REV(cons(X, rev(rev2(Y, L))))
trivial
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev(nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
REV2(X, cons(Y, L)) → REV(cons(X, rev(rev2(Y, L))))
rev1(0, nil) → 0
rev1(s(X), nil) → s(X)
rev1(X, cons(Y, L)) → rev1(Y, L)
rev(nil) → nil
rev(cons(X, L)) → cons(rev1(X, L), rev2(X, L))
rev2(X, nil) → nil
rev2(X, cons(Y, L)) → rev(cons(X, rev(rev2(Y, L))))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev(nil)
rev(cons(x0, x1))
rev2(x0, nil)
rev2(x0, cons(x1, x2))